import abc
from collections.abc import Sized


class Company:
    def __init__(self):
        self.employees = []

    def __len__(self):
        return len(self.employees)


class CacheBase(metaclass=abc.ABCMeta):
    @abc.abstractmethod
    def get(self, key):
        # raise NotImplemented
        pass

    @abc.abstractmethod
    def set(self, key, value):
        # raise NotImplemented
        pass


class RedisCache(CacheBase):
    def get(self, key):
        # print("get from redis")
        pass

    def __set__(self, instance, value):
        #print("set to redis")
        pass


class MemoryCache(CacheBase):
    def get(self, key):
        # print("get from memory")
        pass

    def __set__(self, instance, value):
        # print("set to memory")
        pass



if __name__ == '__main__':
    company = Company()
    print(isinstance(company, Sized))
